package com.eelye.util.winui.device;

import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinUser.INPUT;
import com.sun.jna.platform.win32.WinUser.KEYBDINPUT;

public class Keyboard {

    /**
     * 按下并释放一个键
     * @param key
     */
    public static void typeKey(char key) {
//        // 构造键盘输入事件
//        INPUT input = new INPUT();
//        KEYBDINPUT keyboardInput = new KEYBDINPUT();
//
//        // 设置键盘输入参数
//        int keyCode = User32.MAPVK_VK_TO_CHAR();
//        keyboardInput.wVk = (short) keyCode; // 虚拟键码
//        keyboardInput.wScan = 0; // 扫描码，默认为0
//        keyboardInput.time = 0; // 系统将提供时间戳
//        keyboardInput.dwExtraInfo = 0; // 附加信息，默认为0
//
//        // 按下键
//        keyboardInput.dwFlags = KiFlags.KEYEVENTF_SCANCODE;
//        input.type = INPUT.INPUT_KEYBOARD;
//        input.ki = keyboardInput;
//        user32.SendInput(new INPUT[]{input}, INPUT.SIZEOF);
//
//        // 释放键
//        keyboardInput.dwFlags = KiFlags.KEYEVENTF_SCANCODE | KiFlags.KEYEVENTF_KEYUP;
//        input.ki = keyboardInput;
//        user32.SendInput(new INPUT[]{input}, INPUT.SIZEOF);
    }
}
